/*
Copyright (C) 2011 The University of Michigan
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Please send inquiries to powertutor@umich.edu
*/
package vn.cybersoft.obs.andriod.batterystats2.phone;
public interface PhoneConstants {
/* Return the name of the model represented by these constants
*/
public String modelName();
/* Gives the maximum power that this phone can drain from its battery.
*/
public double maxPower();
/* Gives the coefficient to multiply the LCD display's brightness by to
* calculate power usage.
*/
public double lcdBrightness();
/* Gives the power usage for the lcd display that is incurred by the display
* just being turned on.
*/
public double lcdBacklight();
/* Gives the base power usage for the OLED display for just being on.
*/
public double oledBasePower();
/* Gives the power coefficient for rgb channels (in that order) for a signle
* pixel.
*/
public double[] oledChannelPower();
/* Gives the modulation coefficient for the per pixel power calculation.
*/
public double oledModulation();
/* Gives the coefficients at different cpu frequencies for the amount of
* power/cpu utilization the processor is using.
*/
public double[] cpuPowerRatios();
/* Gives the frequency for each of the power ratios listed in
* cpuPowerRatios().
*/
public double[] cpuFreqs();
/* Gives the usage for the audio output being used. The model doesn't
* currently take into account volume.
*/
public double audioPower();
/* Gives the power consumption for each of the GPS states. These states are
* {OFF, SLEEP, ON} in that order. See GPS.java.
*/
public double[] gpsStatePower();
/* Gives the time in seconds that the GPS sleeps for after the session
* has ended.
*/
public double gpsSleepTime();
/* Gives the power consumption of wifi in the low power state.
*/
public double wifiLowPower();
/* Gives the base power consumption while the wifi is in high power mode.
*/
public double wifiHighPower();
/* Gives the packet rate needed to transition from the low power state
* to the high power state.
*/
public double wifiLowHighTransition();
/* Gives the packet rate needed to transition from the high power state
* to the low power state.
*/
public double wifiHighLowTransition();
/* Gives the power/uplinkrate for different link speeds for wifi in high
* power mode.
*/
public double[] wifiLinkRatios();
/* Gives the link speed associated with each link power ratio. Elements
* should be in increasing order. Should have the same number of elements
* as wifiLinkRatios().
*/
public double[] wifiLinkSpeeds();
/* Gives the name of the 3G interface for this phone.
*/
public String threegInterface();
/* Gives the power consumed while the 3G interface is in the idle state.
*/
public double threegIdlePower(String oper);
/* Gives the power consumed while the 3G interface is in the FACH state.
*/
public double threegFachPower(String oper);
/* Gives the power consumed while the 3G interface is in the DCH state.
*/
public double threegDchPower(String oper);
/* Gives the number of bytes in the uplink queue.
*/
public int threegUplinkQueue(String oper);
/* Gives the number of bytes in the downlink queue.
*/
public int threegDownlinkQueue(String oper);
/* Gives the time in seconds that the 3G interface stays idle in the DCH state
* before transitioning to the FACH state.
*/
public int threegDchFachDelay(String oper);
/* Gives the time in seconds that the 3G interface stays idle in the FACH
* state before transitioning to the IDLE state.
*/
public int threegFachIdleDelay(String oper);
/* Gives the power consumed by each of the sensors. Should have the same size
* as Sensors.MAX_SENSORS.
*/
public double[] sensorPower();
/* Gives the maximum power in mW that the named component can generate.
*/
public double getMaxPower(String componentName);
}